<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>出校控制器原理概述</title>
</head>

<body>
    <h1 style="text-align: center; color: red">出校控制器原理概述</h1>
    <div style="font-size: 14px">
        PPP协议使用3种类型的LCP帧来完成每个PPP链路建立维护终止阶段的工作。在阅读这段内容之前，假设读者已有一定的计算机网络基础知识。<br><br>
        1、链路建立帧（Configure-Request、Configure-Ack、Configure-Nak和Configure-Reject）用于建立和配置链路。<br>
        2、链路维护帧（Code-Reject、Protocol-Reject、Echo-Request、Echo-Reply和Discard-Request）用于管理和调试链路。<br>
        3、链路终止帧（Terminate-Request和Terminate-Ack）用于终止链路。<br>
        <br><br>
        首先，PPP协议发现阶段，PPP-Client向以太网广播一个数据帧，该帧为PPP-LCP类型的以太网广播帧，包含Configure-Request内容请求，用于确定PPP-Server，但是因为桂电存在三家运营商，故如果同时向三家运营商以太网接口同时广播Configure-Request帧，将会收到来自三家运营商的Configure-Ack帧，这将产生冲突。
        <br><br>
        因此，在拨号之前，需要使用出校控制器向网络中心发出请求，确定某mac地址的设备，期望连接到的哪家运营商，然后学校网络中心会修改三层交换机的ACL（Access Control
        List），接通该mac地址设备与运营商的二层数据链路，故运营商将会收到该mac地址设备广播的Configure-Request帧，就可以完成PPPOE链路的建立。如果不发送请求报文，网络中心不会接通任何一家运营商的二层链路。此时拨号就会显示“服务器未响应”。
        如果你输错了MAC地址，也会导致这样的情况。
        <br><br>
        简而言之，出校控制器软件的作用是：向【学校网络中心服务器】发送一个请求，告诉网络中心，【某台设备的期望与xx运营商】建立二层链路，然后网络中心会【修改交换机的ACL】，接通该设备与运营商的【二层链路】。
        <br><br>
        经实测，网络中心交换机有可能会删除该MAC地址的ACL记录，具体时间间隔约为2小时，因此每次设备PPPOE拨号前，可能要再次使用出校控制器发送请求，但也有不少ACL记录永久生效的案例，具体触发条件未知。
        <br><br>
        本网站提供的服务，就是模拟出校控制器向网络中心发送请求。因此需要收集设备的运营商信息，设备MAC地址，以及一个强壮的内网proxy。注意，东区与花江校区的网络中心出口交换机不同，拥有两份独立的ACL。
        <br><br>
        宿舍区每天05:59通电，06:06分通网，不同宿舍区可能有所不同，但大部分路由器在通电后就会尝试拨号，超过3次则不再尝试，建议重启路由器让路由器再次进入拨号状态。
        <br><br>
        关于心跳包，每栋楼通网时间不统一，如果你在通网之前通电了，则路由器会一直拨号失败，直到三次失败后不再尝试，故心跳包意义不大，且会加重proxy负担。手动心跳包是可行的，保存好MAC地址到备忘录，需要的时候复制粘贴就行了。
        <br><br><br><br>
    </div>
    <div style="font-size: 12px; color: red">
        关于PPPOE协议的具体细节，请参阅：
        <a href="https://baike.baidu.com/item/PPPOE/139247?fr=aladdin">PPPOE_百度百科</a>
        <br><br>
        广西师大学长的github项目：
        <a href="https://github.com/xuzhipengnt/ipclient_gxnu/blob/master/README.md">广西师大的出校控制工具开源实现（包括桂林电子科大）</a>
        <br><br>
        广西师大学长写的原理文档(github-raw指向文件下载)：
        <a href="https://github.com/xuzhipengnt/ipclient_gxnu/raw/master/doc/%E5%8E%9F%E7%90%86%E6%96%87%E6%A1%A3.pdf">原理文档.pdf</a>
        <br><br>
        如果想与我讨论更多，请发邮件至 770409504@qq.com
        <br><br>
        --EOF--
    </div>
</body>

</html>